//=============================================================================
/**
 * @file	pokethlon_common.h
 * @brief	ポケスロン共通定義
 * @date	2007.07.10
 */
//=============================================================================

#ifndef	__POKETHLON_COMMON_H__
#define	__POKETHLON_COMMON_H__

#include "savedata\savedata_def.h"
#include "application/pokethlon_frame.h"
#include "system/buflen.h"
#include "system/arc_util.h"

typedef struct POKE_SPEC_tag
{
	u8 Power;
	u8 Speed;
	u8 Jump;
	u8 Stamina;
	u8 Technique;
	u8 dummy;	//パディング
	u16	rev_power:3;	//パフォーマンス値に対するコンディションの補正がプラスかマイナスか？
	u16	rev_speed:3;	//poke_tool.h PM_PERFORMANCE->revisionの値(PERFORMANCE_DIFF_CODE型)
	u16	rev_jump:3;
	u16	rev_stamina:3;
	u16	rev_technique:3;
}POKE_SPEC;			//8byte

typedef struct POKETHLON_ENTRY_DATA_tag
{
	u16 MonsNo;			//モンスターナンバー	2byte
	u16 Form;			//フォルム				2byte
	int PsnlRnd;		//個性乱数				4byte
	POKE_SPEC	Spec;	//ポケスロン能力値		8byte
	u8 Rare;			//レア					1byte
	u8 Sex;				//性別					1byte
	STRCODE NickName[MONS_NAME_SIZE+EOM_SIZE];	//ポケモンニックネーム	//22byte
}POKETHLON_ENTRY_DATA;		//40byte

typedef struct COMMON_PLAYER_DATA_tag
{
///	STRCODE TrainerName[PERSON_NAME_SIZE+EOM_SIZE];	//トレーナー名
	int PersonCode;		//ポケスロンでのNPCトレーナーコード0は主人公1以上がＮＰＣ
	POKETHLON_ENTRY_DATA	EntryData[ENTRY_MAX];	//ポケモン選択からのデータを格納するバッファ
}COMMON_PLAYER_DATA;

//ポケスロンとポケモンエントリアプリをつなぐデータ
typedef struct PKTHLN_LINK_DATA_tag
{
	POKETHLON_HEADER *Header;			//ヘッダー情報
	BOOL SelectCancel;					//アプリケーションがキャンセル終了したか？
	COMMON_PLAYER_DATA CmnPlayerData;
	int CourseID;		//今回のコースID
}PKTHLN_LINK_DATA;

typedef struct TP_STATE_tag
{
	BOOL Trg;
	BOOL Cont;
	int ContCounter;
}TP_STATE;

#endif //__POKETHLON_COMMON_H__